A database system can implement various mechanisms in order to ensure that transactions executed on the database system produce a correct result. For instance, a database system can implement a concurrency control mechanism to isolate multiple concurrently executing transactions from each other and/or to prevent such transactions from interfering with one another in other suitable manners. By way of another example, a database system can implement one or more mechanisms for ensuring consistency and/or recovery of data items associated with the database system.
A database recovery subsystem (RS) manages recordation of various operations performed within an associated database system, which in turn facilitates mirroring of the database system, recovery of data items associated with the database system in the event of a system crash or other failure, and/or other means that enhance resiliency and robustness of the associated database system. In various database system implementations, operations are conducted primarily in one or more disk-based data stores or other similar storage media, and a RS may log such operations with reference to physical location(s) within the data stores associated with the operations. For instance, data stores in a database system can be divided into pages or other suitable storage units, and operations affecting one or more pages can be logged by the RS along with the page(s) affected by the operations. In some cases, finer physical location information, such as row position or storage addresses within a particular page, can be logged along with the relevant page identities. In addition, the RS can obtain physical checkpoints of one or more pages that indicate the data stored in the checkpointed page(s) at the time of checkpointing. Subsequently, in the event that reconstruction of the database system is initiated due to a system crash or failure and/or other reasons, the database system can be reconstructed by restoring the respective pages in the system to states indicated by one or more checkpoints. In addition, changes to one or more pages or other physical data locations made after creation of the checkpoint can be reconstructed as indicated by the log of operations maintained by the RS.
However, for some database systems, such as database systems that are designed to primarily operate in memory (e.g., as opposed to primarily on-disk database systems as described above), various design considerations are desirable in order to adapt an associated RS to the needs of the particular database system being implemented. For example, for some database system implementations, it would be desirable for a RS implementation to allow for enhanced versatility, parallelism, integration with other database systems and/or other systems, mirroring capabilities, and the like.
The above description of today's database recovery techniques is merely intended to provide an overview of conventional systems, and is not intended to be exhaustive. Other conventional systems and corresponding benefits of the various non-limiting embodiments described herein may become further apparent upon review of the following description.